package com.klonetech.sfv2.service;

import com.klonetech.sfv2.dao.RoleMenuDao;
import com.klonetech.sfv2.entity.Module;
import com.klonetech.sfv2.entity.QueryModuleListByRoleInfo;
import com.klonetech.sfv2.entity.QueryRoleListByModuleInfo;
import com.klonetech.sfv2.entity.Role;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import javax.jws.WebMethod;
import javax.jws.WebService;
import java.util.List;

/**
 * Created by cxdwe on 2017/6/8.
 */
public class RoleModuleQueryServiceImpl implements RoleModuleQueryService {

    private static Logger logger = LoggerFactory.getLogger(RoleModuleQueryServiceImpl.class);

    @Autowired
    private RoleMenuDao roleMenuDao;

    /**
     * 根据客户端传过来的角色ID查询该角色所对应的模块树集合
     *
     * @param queryModuleListByRoleInfo 查询入参，roleId
     * @return 菜单列表
     */
    public List<Module> queryModuleListByRole(QueryModuleListByRoleInfo queryModuleListByRoleInfo){
        logger.info("QueryModuleListByRole: 系统编码: {}, 角色ID: {}, 请求时间: {}, 国际化语言: {}",
                queryModuleListByRoleInfo.getSystemCode(),
                queryModuleListByRoleInfo.getRoleId(),
                queryModuleListByRoleInfo.getRequestTime(),
                queryModuleListByRoleInfo.getLanguage());

        return roleMenuDao.queryModuleListByRole(queryModuleListByRoleInfo.getRoleId());
    }

    /**
     * 根据客户端传过来的模块名称查询该模块所对应的角色列表
     *
     * @param queryRoleListByModuleInfo 查询入参，moduleName
     * @return 权限列表
     */
    public List<Role> queryRoleListByModule(QueryRoleListByModuleInfo queryRoleListByModuleInfo){
        logger.info("queryRoleListByModule: 系统编码: {}, 模块名称: {}, 请求时间: {}, 国际化语言: {}",
                queryRoleListByModuleInfo.getSystemCode(),
                queryRoleListByModuleInfo.getModuleName(),
                queryRoleListByModuleInfo.getRequestTime(),
                queryRoleListByModuleInfo.getLanguage());

        return roleMenuDao.queryRoleListByModule(queryRoleListByModuleInfo.getModuleName());
    }

}
